package in.lib.view; import in.lib.Constants; import in.model.User; import in.rob.client.dialog.PopupProfileDialog; import lombok.Getter; import lombok.Setter; import android.content.Context; import android.content.Intent; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.ImageView; public class AvatarView extends ImageView { @Getter @Setter private boolean clickable = false; public AvatarView(Context context) { super(context); } public AvatarView(Context context, AttributeSet attrs) { super(context, attrs); } public AvatarView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } /** * Used to triger the standard user options * @param user */ public void triggerLongPress(final User user) { Intent intent = new Intent(getContext(), PopupProfileDialog.class); intent.putExtra(Constants.EXTRA_USER, user); getContext().startActivity(intent); } @Override public void setLongClickable(boolean longClickable) { clickable = true; super.setLongClickable(longClickable); } @Override public void setOnClickListener(OnClickListener l) { clickable = true; super.setOnClickListener(l); } @Override public boolean onTouchEvent(MotionEvent event) { if (getDrawable() == null || !clickable) return super.onTouchEvent(event); if (event.getAction() == MotionEvent.ACTION_DOWN) { getDrawable().setAlpha(120); } else if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL || event.getAction() == MotionEvent.ACTION_OUTSIDE) { getDrawable().setAlpha(255); } return super.onTouchEvent(event); } }